home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / thesource-7.lha / Source / Articles / Stereoscopic / SegaGlasses.lha / SegaGlasses / readme < prev    next >
Text File  |  1992-09-15  |  5KB  |  113 lines

  1.                  SEGA GLASSES INTEFACE FOR THE RS232 PORT
  2.                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4.                  Comments/enquiries/money(8-)) to:
  5.  
  6.                  Glen Harris
  7.                  2harrig@wench.ece.jcu.edu.au
  8.                  James Cook University of North Queensland
  9.  
  10.  
  11.   This is some of the gear I have written for the Sega 3D glasses.
  12. It includes a circuit for the glasses interface, which allows the two
  13. lenses to be controled completely separately.
  14.   We have a number of pins in an RS232 interface that can be used for
  15. output, so why not use them, if it does not complicate the circuit.
  16.   It can also be useful in some situations if both lenses can be clear
  17. or dark at the same time.
  18.  
  19.   With the circuit is a fairly easy to understand description of how
  20. LCD's work and how to get current to flow in both directions without
  21. having a +10V / 0V / -10V supply.
  22.  
  23.   All the info below is IBM PC specific, but can be easily ported by
  24. anyone with a little experience.
  25. --------
  26.   Also in the file is a _very_ simple program showing how to actually
  27. make the glasses flip between one lens and the other.
  28.  
  29.   In a number of other files is a stereo viewer, which uses Mode X on
  30. a VGA card to display 320x400x256 images.  The Mode X stuff was written
  31. and posted by F van de Hulst from Programmer's Journal, so I've left it
  32. separate from my code.
  33.  
  34.   The basic theory is: read the left image into one page(0), the other
  35. image in to the other page(1), and then display each, while swapping
  36. lenses. All this is synched with the vertical retrace to reduce flicker.
  37.  
  38.   If done fast enough(>~15Hz), the effect will be invisible to the human
  39. eye.
  40.  
  41.   Try experimenting by taking out the WaitForVerticalRetrace() calls,
  42. reversing the pages, or adding small delays so a couple of retraces are
  43. skipped.
  44.  
  45.   There is a sample image file, consisting of a pyramid of balls in front of
  46. a larger ball on a checker floor, with different surface properties.  The
  47. image was made with RayShade 4.0, using the -l and -r options, which is much
  48. easier than calculating viewpoints by hand.
  49.  
  50.   The image format is a multi-image GIF file, the left image first.  There
  51. is a global palette, and no local palettes.  If there are errors in the
  52. GIF reading or decoding, error messages will give a fair idea of what is
  53. wrong.
  54.  
  55.   Local color maps will halt the program as the images should have the same
  56. palettes.  Local maps should only be present when the images have different
  57. maps, so their prescence is a good indication that t least one image will
  58. look totally disgusting.  The -i flag will tell the program to ignore the
  59. local maps and use the global one.
  60.  
  61.   The -p <mapfile> option will make the program read specified file for
  62. the colormap.  The format is one entry per line in "R G B" format, ala
  63. Fractint or PICLAB.  The entries are three integers ranging from 0 to 255.
  64.  
  65.   Since the mapfile is read in after the image, it's colors only come into
  66. effect just before 3D mode kicks in.
  67.  
  68.   If a global color map is not found, the program uses the first local map, if
  69. present, or, if not, the second.  If none are found, a grey scale is used,
  70. ranging 0 to 63 with a gradient of one color per four map entries.
  71.  
  72.   Grey scaling of the global or local color map can be forced with the -g
  73. option.  A 'mode co80' call may be needed to reset the screen after using
  74. this option.
  75.  
  76.   The -b option can be used to keep the screen blank until decoding is
  77. finished.
  78.  
  79.   If you can't understand the method of reading a GIF image (not the LZW
  80. decoding, I don't understand it myself), mail me and I'll explain the steps
  81. involved.
  82.  
  83.   The LZW decoding code was written by Steven A. Bennett.  His copywrite
  84. notice appears in dgif.c.  The files dgif.c and dgif.h were re-organised to
  85. have the same coding style as I use, so they may look a little different to
  86. people who have seen them before.
  87.  
  88. FILES:
  89.  
  90.         circuit.lcd : Circuit, LCD info and simple program
  91.  
  92.         segavga.c   : VGA viewer for IBM PC's.
  93.         segavga.h
  94.  
  95.         dgif.c      : Gif image decoder for above.
  96.         dgif.h        Written by Steven A. Bennett.
  97.  
  98.         mode_x.c    : Mode X pixel writing, paging and retrace timing code.
  99.         mode_x.h      Written by F van der Hulst.
  100.  
  101.         getopt.c    : AT&T public domain getopt.  Don't know who obtained it.
  102.  
  103.         makefile    : Makefile for the above program.
  104.         readme      : This file.
  105.  
  106.         mball.gif   : Sample raytraced image.
  107.         room.gif    : And another.
  108.         sample.map  : An example greyscaled color map of room.gif.
  109.  
  110.         split.c     : Program to split a .img file into two Targa files.
  111.         add.c       : Program to make two GIFs into a multi image GIF file.
  112.  
  113.